home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Auge 4000
/
Auge 4000 #06 (1987-05-23)(Amiga User Gruppe Einzugsgebiet 4000).zip
/
Auge 4000 #06 (1987-05-23)(Amiga User Gruppe Einzugsgebiet 4000).adf
/
Digitizer-Nachschlag
/
PlayIFF_Source
< prev
next >
Wrap
Text File
|
1987-03-08
|
2KB
|
100 lines
DMACONW EQU $DFF096
ADKCONW EQU $DFF09E
AUD0LCH EQU $DFF0A0
AUD1LCH EQU $DFF0B0
AUD0LEN EQU $DFF0A4
AUD1LEN EQU $DFF0B4
AUD0PER EQU $DFF0A6
AUD1PER EQU $DFF0B6
AUD0VOL EQU $DFF0A8
AUD1VOL EQU $DFF0B8
_AbsExecBase equ 4
_LVOOpenLibrary equ -552
_LVOInput equ -54
_LVOOpen equ -30
_LVOClose equ -36
_LVORead equ -42
Existing: EQU 1005
movem.l a0/d0,-(SP)
move.l _AbsExecBase,a6
move.l #DOS_Name,a1
clr.l d0
jsr _LVOOpenLibrary(a6)
move.l d0,a6
tst.l d0
beq Abort
jsr _LVOInput(a6)
move.l d0,StdIn
beq Abort
movem.l (SP)+,a0/d0
move.l a0,d1
move.b #0,-1(a0,d0)
move.l #Existing,d2
jsr _LVOOpen(a6)
move.l d0,FileHandle
bne Display_File
bra Abort
Display_File:
move.l FileHandle,d1
move.l #Buffer,d2
move.l #8,d3
jsr _LVORead(a6)
move.l d2,a0
move.l (a0),d4
cmp.l #'FORM',d4
bne Abort
move.l 4(a0),d3
move.l d3,chunksize
cmp.l #131300,d3
bhi Abort
move.l #$7fc00,d2
sub.l d3,d2
move.l d2,so_buf
move.l FileHandle,d1
jsr _LVORead(a6)
move.l FileHandle,d1
jsr _LVOClose(a6)
move.l so_buf,a1
vh:cmp.l #'VHDR',(A1)+
bne.s vh
move.w 16(a1),d4
bo:cmp.l #'BODY',(A1)+
bne.s bo
move.l (A1)+,d1
cmp.l #131070,d1
bhi Abort
divu #2,d1
move.l A1,d2
move.l #3579546,d3
divu d4,d3
MOVE.W d1,AUD0LEN
MOVE.W d1,AUD1LEN
MOVE.W d3,AUD0PER
MOVE.W d3,AUD1PER
MOVE.W #64,AUD0VOL
MOVE.W #64,AUD1VOL
MOVE.L d2,AUD0LCH
MOVE.L d2,AUD1LCH
MOVE.W #%1000001000000011,DMACONW
Abort:
clr.l d0
rts
SECTION data,DATA
DOS_Name:
dc.b 'dos.library',0
SECTION mem,BSS
StdIn ds.l 1
FileHandle:ds.l 1
Buffer: ds.l 2
chunksize: ds.l 1
so_buf: ds.l 1
END